Typically, software is licensed not sold. The license includes conditions and restrictions such as (a) a geographic location where (an unlimited number of copies of) the software can be installed, (b) a specific computer CPU serial number in which (an unlimited number of copies of) the software can be installed, (c) a total number of copies which the licensee can install in one or more computers located anywhere, (d) a type of computer (such as production, development, etc.) on which the software can be used, and (e) a maximum size computer (typically expressed in processing power) in which the software can be installed. Often times, one company has multiple licenses that authorize installation of the same type of software, and many copies of the software are installed on different computers of the company. It has proven difficult for many companies to effectively track their licenses and which software copies are licensed when the company is large and has many separate software licenses, software installations and computers. Often times, the result is that one or more software installations are not covered by an existing software license of the company. Usually this is inadvertent, but nevertheless improper. (Often times also, the company has excess software licenses.)
An IBM Tivoli License Manager program is a known software license management program, and is further described in a document entitled “Introducing IBM Tivoli License Manager” by Manoel, et al. which is available from ibm.com/redbooks. Chapter 2 of this document is hereby incorporated by reference as part of the present disclosure. Using this program, when a license is associated with specific installed software, an administrator enters into a database information about the license. To the extent applicable, this information includes maximum size of the computer processor on which the program can be installed, maximum number of copies of the program that can be installed (on any computer), expiration date, specific CPU serial number on which the program can be installed or executed, and geographic location of the processor for executing (an unlimited number of copies of) the program. The Tivoli License Manager program checks whether each installed software program complies with an existing license by applying the licenses to the installations based on a predetermined and set order of conditions. For example, the Tivoli License Manager may be preprogrammed to apply all licenses having one type of condition to the installations, and then determine which installations are not covered by this type of license. Then, the Tivoli License Manager may be preprogrammed to apply all licenses having another type of condition to the remaining installations, and then determine which installations are not covered by either type of license. Then, the Tivoli License Manager may be preprogrammed to apply all licenses having still another type of condition to the still remaining installations, and then determine which installations are not covered by any of the three license, etc. If the Tivoli License Manager has not associated any remaining installed software with a license after all the licenses have been applied, then it is possible that such remaining installed software is not covered under any existing software license. (If any licenses remain after all the software installations are associated with/covered by any of the previously applied licenses, then the Tivoli License Manager deems the remaining licenses as excessive or unnecessary, and they can be terminated to save the company money.)
Copending US Patent Application entitled “System, Method and Program Product To Identify Unutilized or Underutilized Software License”, Ser. No. 11/157,397, filed by J. Marsnik, O. Nalamwar and T. Smalley on Jun. 21, 2005 discloses an improved program tool for identifying installed software which is not licensed as well as excess or under utilized licenses. According to this patent application, the improved program tool applies the software licenses in various orders to the software installations, where each order is based on a different prioritization of license conditions. For example, in one order, all licenses with a condition on geographic location are applied first, then all licenses with a condition on total number of copies are applied second, then all licenses with a condition on specific CPU are applied third, etc. In another order, all licenses with a condition on total number of copies are applied first, then all licenses with a condition on geographic location are applied second, then all licenses with a condition on specific CPU are applied third, etc. In still another order, all licenses with a condition on specific CPU are applied first, then all licenses with a condition on total number of copies are applied second, then all licenses with a condition on geographic location are applied third, etc. This patent application is hereby incorporated by reference as part of the present disclosure. After all the licenses are applied in the different orders to the software installations, if none of the licenses covers one or more software installations in any of the orders, then that software installation is not licensed. (Also, if less than all the licenses are needed to cover all the software installations in any of the orders, then the remaining licenses are unnecessary and can be terminated to save the company money.)
While the foregoing techniques are effective in identifying unlicensed software installations, they do not disclose a technique to determine what to do when such unlicensed software installations are identified, other than to simply decommission/delete the unlicensed software installation. This may not be in the best interest of the user/company.
Accordingly, an object of the present invention is to determine what to do when unlicensed software installations are identified, to serve the interest of the user/company.